﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
namespace GameVLTK
{
    public class FixedObject : VisibleGameEntity
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="content"></param>
        /// <param name="path"></param>
        /// <param name="topLeft"></param>
        public FixedObject(ContentManager content, string path, int nTextures,
                        Vector2 topLeft)
        {
            Texture2D[] textures;
            textures = new Texture2D[nTextures];

            int[] framSeq = new int[nTextures];
            for (int i = 0; i < nTextures; i++)
            {
                textures[i] = content.Load<Texture2D>(path + (i + 1).ToString("00"));
                framSeq[i] = i;
            }

            //Mỗi obj sẽ có một sprite gồm dãy các hình
            this.Sprites = new List<MySprite>();
            this.nSprites = 1;
            this.Size = new Vector2(textures[0].Width, textures[0].Height);
            this.TopLeft = topLeft;

            //Tính chỉ số Z-Index
            this.Z_Index = topLeft.Y;

            //Khởi tạo sprite cho obj
            MySprite mySprite = new MySprite(textures, topLeft);
            mySprite.FrameSequence = framSeq;

            this.Sprites.Add(mySprite);

            Map.FixedObjects.Add(this);
        }

       
       

        public override int OnEvent(Global.EVENTS eventID, object sender, object[] args)
        {
            int kq = 0;
            switch (eventID)
            {

                case Global.EVENTS.GM_MAP_TOPLEFT_CHANGED:
                    {
                        this.TopLeft += (Vector2)args[0];
                        break;
                    }
                default:
                    break;
            }

            return kq;
        }


    }
}
